Appearance
My 4-Year Self-Study Computer Science Journey
Why I'm Doing This
After working in tech for a while, I realized I had gaps in my foundational CS knowledge. Rather than just picking random courses, I decided to follow a structured path, one that mirrors what students at Stanford and Harvard actually learn. This isn't about collecting certificates or checking boxes. It's about building a deep, coherent understanding of computer science with a focus on artificial intelligence.
I'm learning in public because it keeps me accountable and, hopefully, helps others who are on a similar path. This is my roadmap for the next four years.
The Structure: 12 Quarters, 36 Courses
I'm following Stanford's quarter system: 3 quarters per year, 3 courses per quarter (with some flexibility). The curriculum progresses logically:
- Year 1: Foundation (programming, math, CS theory)
- Year 2: Core CS (systems, algorithms, databases, networking)
- Year 3: AI Specialization (machine learning, deep learning, NLP, RL)
- Year 4: Advanced topics and a capstone project
All materials are free and publicly available—primarily Stanford lectures on YouTube, MIT OpenCourseWare, and open-source textbooks.
Time Commitment
Per Quarter: ~15-20 hours/week (3 courses × 5-7 hours each)
Per Year: ~450-600 hours
Total: ~1,800-2,400 hours over 4 years
This is flexible based on your schedule. Some quarters will be heavier than others.
Year 1: Building the Foundation
Fall Quarter
CS106A: Programming Methodology
Why it matters: Your first step into programming. Python fundamentals, object-oriented programming, and algorithmic thinking.
Key Topics: Python, OOP, problem-solving
📺 Stanford CS106A Playlist
Single Variable Calculus
Why it matters: The mathematical foundation for understanding change and optimization—critical for machine learning.
Key Topics: Limits, derivatives, integrals
📚 MIT 18.01SC Single Variable Calculus
CS61A: Structure and Interpretation of Computer Programs (SICP)
Why it matters: Teaches you to think deeply about computation. A legendary course that goes beyond syntax.
Key Topics: Functional programming, abstraction, recursion
🌐 Berkeley CS 61A
Estimated Time: 15-18 hours/week
Winter Quarter
CS106B: Programming Abstractions
Why it matters: Learn C++ and master essential data structures and algorithms.
Key Topics: C++, recursion, data structures (stacks, queues, trees, graphs)
📺 Stanford CS106B Playlist
Multivariable Calculus
Why it matters: Extends calculus to higher dimensions—essential for understanding gradient descent and neural networks.
Key Topics: Vectors, partial derivatives, multiple integrals
📚 MIT 18.02SC Multivariable Calculus
Linear Algebra
Why it matters: The language of data. Non-negotiable for AI and ML.
Key Topics: Vector spaces, eigenvalues, SVD
📚 MIT 18.06SC Linear Algebra
Estimated Time: 18-20 hours/week
Spring Quarter
CS103: Mathematical Foundations of Computing
Why it matters: Learn to reason formally about computation—proofs, logic, and computability.
Key Topics: Logic, set theory, graph theory, computability
📺 Stanford CS103 Playlist
MIT 6.042J: Discrete Mathematics
Why it matters: A comprehensive study of the mathematical structures at the heart of CS.
Key Topics: Combinatorics, graph theory, proof techniques
📚 MIT 6.042J Mathematics for CS
The Missing Semester: Practical Software Engineering
Why it matters: The tools every developer needs—Git, shell scripting, testing, debugging.
Key Topics: Git, command line, version control, automation
🌐 The Missing Semester (MIT)
Estimated Time: 15-18 hours/week
Year 2: Core Computer Science
Fall Quarter
CS107: Computer Organization and Systems
Why it matters: Understand how computers actually execute code—from C to assembly.
Key Topics: C, memory management, assembly, compilers
📺 Stanford CS107 Playlist
CS109: Probability for Computer Scientists
Why it matters: Learn to reason about uncertainty—fundamental for AI and data science.
Key Topics: Combinatorics, Bayes' Theorem, random variables
📺 Stanford CS109 Playlist
Berkeley CS 186: Introduction to Databases
Why it matters: Data is the fuel for AI. Learn how to manage it in robust, scalable systems.
Key Topics: SQL, relational algebra, database design
📺 Berkeley CS 186 Playlist
Estimated Time: 18-20 hours/week
Winter Quarter
CS161: Design and Analysis of Algorithms
Why it matters: Learn to design efficient, elegant solutions to complex problems.
Key Topics: Divide & conquer, dynamic programming, graph algorithms
📺 Stanford CS161 Playlist
Berkeley CS 162: Operating Systems
Why it matters: Understand the master program running your computer—critical for high-performance applications.
Key Topics: Processes, threads, concurrency, virtual memory
🌐 Berkeley CS 162
STATS 191: Introduction to Statistical Learning
Why it matters: A practical introduction to machine learning models before diving into theory.
Key Topics: Linear models, cross-validation, tree-based methods
📺 Stanford STATS 191/216 (Hastie & Tibshirani)
Estimated Time: 20-22 hours/week
Spring Quarter
CS221: Artificial Intelligence: Principles & Techniques
Why it matters: The definitive AI survey course. Your roadmap for the entire field.
Key Topics: Search algorithms, game playing, RL basics, MDPs
📺 Stanford CS221 Playlist
Berkeley CS 168: Computer Networking
Why it matters: Modern AI is distributed. Understand the internet that makes it possible.
Key Topics: TCP/IP, HTTP, DNS, routing
📺 Berkeley CS 168 Playlist
CS147: Introduction to Human-Computer Interaction
Why it matters: An intelligent system is useless if no one can use it.
Key Topics: Design thinking, prototyping, user testing
📺 Stanford CS147 Playlist
Estimated Time: 18-20 hours/week
Year 3: AI Specialization
Fall Quarter
CS229: Machine Learning
Why it matters: The legendary Andrew Ng course. Comprehensive theory and practice of ML.
Key Topics: Supervised/unsupervised learning, deep learning fundamentals, practical ML advice
📺 Stanford CS229 Playlist (2018)
CS228: Probabilistic Graphical Models
Why it matters: A powerful framework for reasoning about complex, uncertain domains.
Key Topics: Bayesian networks, Markov networks, inference algorithms
📺 Stanford CS228 Playlist
CS143: Compilers
Why it matters: Understand how programming languages work from the inside.
Key Topics: Parsing, semantic analysis, code optimization
🌐 Stanford CS143 (Online)
Estimated Time: 20-25 hours/week
Winter Quarter
CS231n: CNNs for Visual Recognition
Why it matters: Deep dive into computer vision using convolutional neural networks.
Key Topics: CNN architectures, object detection, generative models
📺 Stanford CS231n Playlist
CS230: Deep Learning
Why it matters: Practical, project-based course on building and training deep neural networks.
Key Topics: TensorFlow/PyTorch, hyperparameter tuning, sequence models (RNNs)
📺 Stanford CS230 Playlist (2018)
📺 Stanford CS230 Playlist (2025 - Updated)
Harvard "Justice" + Stanford HAI Publications (Ethics in Tech)
Why it matters: Understand the societal and ethical implications of technology.
Key Topics: Bias & fairness, privacy, future of work
📺 Harvard "Justice" Playlist
🌐 Stanford HAI Publications
Estimated Time: 20-25 hours/week
Spring Quarter
CS224n: NLP with Deep Learning
Why it matters: Modern deep learning techniques for natural language processing.
Key Topics: Word embeddings, transformers (BERT, GPT), machine translation
📺 Stanford CS224n Playlist
CS234: Reinforcement Learning
Why it matters: Teach agents to make optimal decisions through interaction with environments.
Key Topics: Q-Learning, Deep Q-Networks (DQN), policy gradient methods
📺 Stanford CS234 Playlist (Spring 2024)
CS124: From Languages to Information
Why it matters: A broad introduction to NLP covering classic and modern approaches.
Key Topics: Sentiment analysis, information extraction, dialogue agents
📺 Stanford CS124 (Jurafsky) Playlist
Estimated Time: 20-25 hours/week
Year 4: Advanced Topics & Capstone
Fall Quarter
CS224U: Natural Language Understanding
Why it matters: Advanced NLP focusing on computational semantics and pragmatics.
Key Topics: Grounded language, discourse & dialogue, NLU with transformers
📺 Stanford CS224U Playlist (Spring 2019)
📺 Stanford XCS224U Playlist (Spring 2023 - Updated)
CS238: Decision Making Under Uncertainty
Why it matters: Formalize decision-making for agents in stochastic environments.
Key Topics: POMDPs, Bayesian reinforcement learning, multi-agent systems
📺 Stanford CS238 Playlist
Capstone Project Part 1: Proposal & Design
Begin work on a large-scale, self-directed project. Focus on problem identification, literature review, and system design.
Estimated Time: 20-25 hours/week
Winter Quarter
CS236: Deep Generative Models
Why it matters: Explore generative modeling—creating models that produce realistic images, text, and data.
Key Topics: VAEs, GANs, diffusion models
📺 Stanford CS236 Playlist (2023)
CS330: Deep Multi-Task & Meta Learning
Why it matters: Cutting-edge AI—teaching models to learn and adapt quickly from few examples.
Key Topics: Meta-learning algorithms, multi-task learning, few-shot learning
📺 Stanford CS330 Playlist
Capstone Project Part 2: Implementation
The bulk of coding and implementation for your capstone project.
Estimated Time: 25-30 hours/week
Spring Quarter
Advanced Topics (Self-Study)
Choose an advanced topic based on your interests (e.g., Robotics, AI for Healthcare, Computational Finance).
Writing in the Major (WIM) Simulation
Write a full technical report on your capstone project and create a blog series explaining it.
Capstone Project Part 3: Write-up & Presentation
Finalize your project, write the final report, and prepare a presentation.
Estimated Time: 25-30 hours/week
Optional Advanced Courses (Mix into Year 3-4 as needed)
CS229M: Machine Learning Theory
Theoretical foundations of machine learning.
📺 Stanford CS229M Playlist (Fall 2021)
Progress Tracker
Use this section to track your journey. Check off courses as you complete them!
Year 1
Fall Quarter
- [ ] CS106A: Programming Methodology
- [ ] Single Variable Calculus
- [ ] CS61A: Structure and Interpretation of Computer Programs (SICP)
Winter Quarter
- [ ] CS106B: Programming Abstractions
- [ ] Multivariable Calculus
- [ ] Linear Algebra
Spring Quarter
- [ ] CS103: Mathematical Foundations of Computing
- [ ] MIT 6.042J: Discrete Mathematics
- [ ] The Missing Semester: Practical Software Engineering
Year 2
Fall Quarter
- [ ] CS107: Computer Organization and Systems
- [ ] CS109: Probability for Computer Scientists
- [ ] Berkeley CS 186: Introduction to Databases
Winter Quarter
- [ ] CS161: Design and Analysis of Algorithms
- [ ] Berkeley CS 162: Operating Systems
- [ ] STATS 191: Introduction to Statistical Learning
Spring Quarter
- [ ] CS221: Artificial Intelligence: Principles & Techniques
- [ ] Berkeley CS 168: Computer Networking
- [ ] CS147: Introduction to Human-Computer Interaction
Year 3
Fall Quarter
- [ ] CS229: Machine Learning
- [ ] CS228: Probabilistic Graphical Models
- [ ] CS143: Compilers
Winter Quarter
- [ ] CS231n: CNNs for Visual Recognition
- [ ] CS230: Deep Learning
- [ ] Ethics in Tech (Harvard "Justice" + Stanford HAI)
Spring Quarter
- [ ] CS224n: NLP with Deep Learning
- [ ] CS234: Reinforcement Learning
- [ ] CS124: From Languages to Information
Year 4
Fall Quarter
- [ ] CS224U: Natural Language Understanding
- [ ] CS238: Decision Making Under Uncertainty
- [ ] Capstone Project Part 1: Proposal & Design
Winter Quarter
- [ ] CS236: Deep Generative Models
- [ ] CS330: Deep Multi-Task & Meta Learning
- [ ] Capstone Project Part 2: Implementation
Spring Quarter
- [ ] Advanced Topics (Self-Study)
- [ ] Writing in the Major (WIM) Simulation
- [ ] Capstone Project Part 3: Write-up & Presentation
What's Next?
This blog post is just the overview. In the coming weeks and months, I'll be publishing detailed series on individual courses, sharing my daily notes, lessons learned, and key insights. Each course will have its own dedicated page where I'll document:
- Daily learning notes: What I studied, challenges faced, breakthroughs
- Key concepts: Visual explanations and summaries
- Resources: Additional materials I found helpful
- Projects: Assignments and personal projects related to the course
The journey starts now. If you're on a similar path, I'd love to hear from you. Let's learn together.
Last updated: January 2025